{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\environment\\Anaconda3\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n",
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from keras.models import Model\n",
    "from keras.layers import Dense, Activation, Input, Reshape\n",
    "from keras.layers import Conv1D, Flatten, Dropout\n",
    "from keras.optimizers import SGD, Adam\n",
    "\n",
    "\n",
    "from tqdm import tqdm_notebook as tqdm  # 进度条"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成随机正弦曲线的数据\n",
    "def sample_data(n_samples=10000, x_vals=np.arange(0, 5, .1), max_offset=1000, mul_range=[1, 2]):\n",
    "    vectors = []\n",
    "    for i in range(n_samples):\n",
    "        offset = np.random.random() * max_offset\n",
    "        mul = mul_range[0] + np.random.random() * (mul_range[1] - mul_range[0])\n",
    "        vectors.append(np.sin(offset + x_vals * mul) / 2 + .5)\n",
    "        \n",
    "    return np.array(vectors)\n",
    "    \n",
    "# 创建生成模型\n",
    "def get_generative(G_in, dense_dim=200, out_dim=50, lr=1e-3):\n",
    "    x = Dense(dense_dim)(G_in)\n",
    "    x = Activation('tanh')(x)\n",
    "    G_out = Dense(out_dim, activation='tanh')(x)\n",
    "    G = Model(G_in, G_out)\n",
    "    opt = SGD(lr=lr)\n",
    "    \n",
    "    G.compile(loss='binary_crossentropy', optimizer=opt)\n",
    "    \n",
    "    return G, G_out\n",
    "    \n",
    "# 创建判别模型\n",
    "def get_discriminative(D_in, lr=1e-3, drate = .25, n_channels=50, conv_sz=5, leak=.2):\n",
    "    x = Reshape((-1, 1))(D_in)\n",
    "    x = Conv1D(n_channels, conv_sz, activation='relu')(x)\n",
    "    x = Dropout(drate)(x)\n",
    "    x = Flatten()(x)\n",
    "    x = Dense(n_channels)(x)\n",
    "    D_out = Dense(2, activation='sigmoid')(x)\n",
    "    D = Model(D_in, D_out)\n",
    "    dopt = Adam(lr=lr)\n",
    "    D.compile(loss='binary_crossentropy', optimizer=dopt)\n",
    "    \n",
    "    return D, D_out\n",
    "\n",
    "    \n",
    "    \n",
    "def set_trainability(model, trainable=False):\n",
    "    model.trainable = trainable\n",
    "    for layer in model.layers:\n",
    "        layer.trainable = trainable\n",
    "        \n",
    "def make_gan(GAN_in, G, D):\n",
    "    set_trainability(D, False)\n",
    "    x = G(GAN_in)\n",
    "    GAN_out = D(x)\n",
    "    GAN = Model(GAN_in, GAN_out)\n",
    "    GAN.compile(loss='binary_crossentropy', optimizer=G.optimizer)\n",
    "    return GAN, GAN_out\n",
    "\n",
    "# 通过生成数据 预训练判别模型\n",
    "def sample_data_and_gen(G, noise_dim=10, n_samples=10000):\n",
    "    XT = sample_data(n_samples=n_samples)\n",
    "    XN_noise = np.random.uniform(0, 1, size=[n_samples, noise_dim])\n",
    "    XN = G.predict(XN_noise)\n",
    "    X = np.concatenate((XT, XN))\n",
    "    y = np.zeros((2*n_samples, 2))\n",
    "    y[:n_samples, 1] = 1\n",
    "    y[n_samples:, 0] = 1\n",
    "\n",
    "    return X, y\n",
    "     \n",
    "def pretrain(G, D, noise_dim=10, n_samples=10000, batch_size=32):\n",
    "    X, y = sample_data_and_gen(G, noise_dim=noise_dim, n_samples=n_samples)\n",
    "    set_trainability(D, True)\n",
    "    D.fit(X, y, epochs=1, batch_size=batch_size)\n",
    "    \n",
    "    \n",
    "# 开始交叉训练步骤\n",
    "def sample_noise(G, noise_dim=10, n_samples=10000):\n",
    "    X = np.random.uniform(0, 1, size=[n_samples, noise_dim])\n",
    "    y = np.zeros((n_samples, 2))\n",
    "    y[:, 1] = 1\n",
    "\n",
    "    return X, y\n",
    "    \n",
    "def train(GAN, G, D, epochs=500, n_samples=10000, noise_dim=10, batch_size=32, verbose=False, v_freq=50):\n",
    "    d_loss = []\n",
    "    g_loss = []\n",
    "    e_range = range(epochs)\n",
    "    if verbose:\n",
    "        e_range = tqdm(e_range)\n",
    "    \n",
    "    for epoch in e_range:\n",
    "        X, y = sample_data_and_gen(G, n_samples=n_samples, noise_dim=noise_dim) # 对D进行训练\n",
    "        set_trainability(D, True)\n",
    "        d_loss.append(D.train_on_batch(X, y))\n",
    "        \n",
    "        X, y = sample_noise(G, n_samples=n_samples, noise_dim=noise_dim) # 对G训练\n",
    "        set_trainability(D, False)\n",
    "        g_loss.append(GAN.train_on_batch(X, y))\n",
    "        \n",
    "        if verbose and (epoch + 1) % v_freq == 0:\n",
    "            print(\"Epoch #{}: Generative Loss: {}, Discriminative Loss: {}\".format(epoch + 1, g_loss[-1], d_loss[-1]))\n",
    "            \n",
    "    return d_loss, g_loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         (None, 10)                0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 200)               2200      \n",
      "_________________________________________________________________\n",
      "activation_1 (Activation)    (None, 200)               0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 50)                10050     \n",
      "=================================================================\n",
      "Total params: 12,250\n",
      "Trainable params: 12,250\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "WARNING:tensorflow:From D:\\environment\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\util\\deprecation.py:497: calling conv1d (from tensorflow.python.ops.nn_ops) with data_format=NHWC is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "`NHWC` for data_format is deprecated, use `NWC` instead\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_2 (InputLayer)         (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "reshape_1 (Reshape)          (None, 50, 1)             0         \n",
      "_________________________________________________________________\n",
      "conv1d_1 (Conv1D)            (None, 46, 50)            300       \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 46, 50)            0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 2300)              0         \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 50)                115050    \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 2)                 102       \n",
      "=================================================================\n",
      "Total params: 115,452\n",
      "Trainable params: 115,452\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2306061d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = pd.DataFrame(np.transpose(sample_data(5))).plot()\n",
    "G_in = Input(shape=[10])\n",
    "G, G_out = get_generative(G_in)\n",
    "G.summary()\n",
    "\n",
    "D_in = Input(shape=[50])\n",
    "D, D_out = get_discriminative(D_in)\n",
    "D.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_5 (InputLayer)         (None, 10)                0         \n",
      "_________________________________________________________________\n",
      "model_1 (Model)              (None, 50)                12250     \n",
      "_________________________________________________________________\n",
      "model_2 (Model)              (None, 2)                 115452    \n",
      "=================================================================\n",
      "Total params: 127,702\n",
      "Trainable params: 12,250\n",
      "Non-trainable params: 115,452\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "GAN_in = Input([10])\n",
    "GAN, GAN_out = make_gan(GAN_in, G, D)\n",
    "GAN.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/1\n",
      "20000/20000 [==============================] - ETA: 3:20 - loss: 0.745 - ETA: 25s - loss: 0.373 - ETA: 14s - loss: 0.21 - ETA: 10s - loss: 0.13 - ETA: 8s - loss: 0.1056 - ETA: 7s - loss: 0.087 - ETA: 6s - loss: 0.071 - ETA: 6s - loss: 0.061 - ETA: 5s - loss: 0.053 - ETA: 5s - loss: 0.046 - ETA: 4s - loss: 0.041 - ETA: 4s - loss: 0.037 - ETA: 4s - loss: 0.034 - ETA: 4s - loss: 0.031 - ETA: 3s - loss: 0.029 - ETA: 3s - loss: 0.027 - ETA: 3s - loss: 0.026 - ETA: 3s - loss: 0.024 - ETA: 3s - loss: 0.023 - ETA: 3s - loss: 0.021 - ETA: 3s - loss: 0.020 - ETA: 3s - loss: 0.019 - ETA: 2s - loss: 0.018 - ETA: 2s - loss: 0.017 - ETA: 2s - loss: 0.017 - ETA: 2s - loss: 0.016 - ETA: 2s - loss: 0.015 - ETA: 2s - loss: 0.015 - ETA: 2s - loss: 0.014 - ETA: 2s - loss: 0.014 - ETA: 2s - loss: 0.013 - ETA: 2s - loss: 0.013 - ETA: 2s - loss: 0.012 - ETA: 1s - loss: 0.012 - ETA: 1s - loss: 0.012 - ETA: 1s - loss: 0.011 - ETA: 1s - loss: 0.011 - ETA: 1s - loss: 0.011 - ETA: 1s - loss: 0.010 - ETA: 1s - loss: 0.010 - ETA: 1s - loss: 0.010 - ETA: 1s - loss: 0.010 - ETA: 1s - loss: 0.009 - ETA: 1s - loss: 0.009 - ETA: 1s - loss: 0.009 - ETA: 1s - loss: 0.009 - ETA: 1s - loss: 0.009 - ETA: 1s - loss: 0.008 - ETA: 1s - loss: 0.008 - ETA: 0s - loss: 0.008 - ETA: 0s - loss: 0.008 - ETA: 0s - loss: 0.008 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.007 - ETA: 0s - loss: 0.006 - ETA: 0s - loss: 0.006 - ETA: 0s - loss: 0.006 - ETA: 0s - loss: 0.006 - ETA: 0s - loss: 0.006 - 4s 187us/step - loss: 0.0064\n"
     ]
    }
   ],
   "source": [
    "pretrain(G, D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c9d52f009f274d148997258499a3bc75",
       "version_major": 2,
       "version_minor": 0
      },
      "text/html": [
       "<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
       "<p>\n",
       "  If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
       "  that the widgets JavaScript is still loading. If this message persists, it\n",
       "  likely means that the widgets JavaScript library is either not installed or\n",
       "  not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
       "  Widgets Documentation</a> for setup instructions.\n",
       "</p>\n",
       "<p>\n",
       "  If you're reading this message in another frontend (for example, a static\n",
       "  rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
       "  it may mean that your frontend doesn't currently support widgets.\n",
       "</p>\n"
      ],
      "text/plain": [
       "HBox(children=(IntProgress(value=0, max=500), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch #50: Generative Loss: 3.2680366039276123, Discriminative Loss: 0.7191373109817505\n",
      "Epoch #100: Generative Loss: 1.880533218383789, Discriminative Loss: 0.30966484546661377\n",
      "Epoch #150: Generative Loss: 4.161871910095215, Discriminative Loss: 0.051434654742479324\n",
      "Epoch #200: Generative Loss: 3.7338500022888184, Discriminative Loss: 0.09952372312545776\n",
      "Epoch #250: Generative Loss: 3.9842569828033447, Discriminative Loss: 0.04793567955493927\n",
      "Epoch #300: Generative Loss: 4.294563293457031, Discriminative Loss: 0.06304902583360672\n",
      "Epoch #350: Generative Loss: 2.835638999938965, Discriminative Loss: 0.09784887731075287\n",
      "Epoch #400: Generative Loss: 3.9227592945098877, Discriminative Loss: 0.029597070068120956\n",
      "Epoch #450: Generative Loss: 3.9247546195983887, Discriminative Loss: 0.02840055525302887\n",
      "Epoch #500: Generative Loss: 3.687798500061035, Discriminative Loss: 0.040528856217861176\n",
      "\n"
     ]
    }
   ],
   "source": [
    "d_loss, g_loss = train(GAN, G, D, verbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Loss')"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x21d80227da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = pd.DataFrame(\n",
    "    {\n",
    "        'Generative Loss': g_loss,\n",
    "        'Discriminative Loss': d_loss,\n",
    "    }\n",
    ").plot(title='Training loss', logy=True)\n",
    "ax.set_xlabel(\"Epochs\")\n",
    "ax.set_ylabel(\"Loss\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x21d8025c6d8>"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x21d8033e940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N_VIEWED_SAMPLES = 2\n",
    "data_and_gen, _ = sample_data_and_gen(G, n_samples=N_VIEWED_SAMPLES)\n",
    "pd.DataFrame(np.transpose(data_and_gen[N_VIEWED_SAMPLES:])).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x21d80467128>"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x21dcfd4ff28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N_VIEWED_SAMPLES = 2\n",
    "data_and_gen, _ = sample_data_and_gen(G, n_samples=N_VIEWED_SAMPLES)\n",
    "pd.DataFrame(np.transpose(data_and_gen[N_VIEWED_SAMPLES:])).rolling(5).mean()[5:].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
